A software virtual switch operating on a host in a datacenter will often have dozens of VMs directly connected, resulting in the virtual switch seeing thousands or even millions of packets per second. One of the main challenges in developing such a software switching element is performance. A hardware switch has application-specific integrated circuits (ASICs) that are specifically designed to support in-hardware forwarding. Software switches, on the other hand, operate on standard machines, such as x86 boxes, and are therefore executed by general-purpose processing units (e.g., CPUs), which are more versatile but slower than the operation-specific circuits. Thus, methods for increasing the performance of the software switching element are needed.